No mundo do Rust, o compilador é a sua primeira linha de defesa, detectando vazamentos de memória e erros de tipo antes mesmo de acontecerem. No entanto, o compilador não pode saber sua intenção. É aqui que testes automatizados entram em ação como uma "rede de segurança" para a correção lógica.
1. O Par Complementar
Enquanto o sistema de tipos cuida da integridade estrutural, os testes verificam o comportamento funcional. Em um projeto de biblioteca, o compilador garante que você não passe uma String para uma função matemática, mas apenas um teste assegura que $f(x) = y$ produza o resultado esperado.
2. Ciclo Padrão
Os testes do Rust seguem uma coreografia rígida de três etapas:
- Configuração: Inicialize os dados (por exemplo, criando uma instância da biblioteca).
- Execução: Execute a lógica específica que está sendo testada.
- Verificação: Verifique o estado usando macros como
assert_eq!.
A ferramenta integrada suporta testes de documentação (exemplos executáveis na documentação) e testes de benchmark para garantir que seu código permaneça extremamente rápido.